﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Media;
using WPFSchematics.Definition.Shapes;

namespace opSysPower.Definition
{
    public interface IFeature:INaming,IOperate
    {
        UInt32 Fid { get; set; }
        IFeatureType FeatureType { get; }
        IList<IComponent> Components { get; }


        IAttribute Attribute { get; set; }
        IRelation RelationShip { get; set; }
    }

    public interface IFeatureType:INaming
    {
        UInt32 Fno { get; set; }
    }
    public interface IComponentWrapper
    {
        IList<IComponent> ComponentList { get; }
    }
    public interface IComponent:INaming
    {
        UInt32 Cid { get; set; }
        ComponentType CType { get; }
        IGisComponentParams GisParams { get; set; }
        ISdoGeometry SdoGeometry { get; set; }
    }
    public interface ISdoGeometry
    {
        IList<Point> Points { get; }
    }

    public interface ITransform
    {
        double Angle { get; set; }
     
        Size Scaling { get; set; }
    }

    public interface IStyle
    {
        UInt32 Sno { get; set; }
       
        Color Color { get; set; }
       
        ILineStyle LineStyle { get; set; }
      
        ITextStyle TextStyle { get; set; }
     
        IShapeStyle ShapeStyle { get; }
       
        IShapeStyle SelectStyle { get; }

        IShapeStyle HighLightStyle { get; }
    }

    public  interface ILineStyle
    {
        LineDashStyle LineDashStyle { get; set; }

        DashStyle DashStyle { get; }
        
        double LineWidth { get; set; }
    }
    public  interface ITextStyle
    {
       
         string FontFamily { get; set; }
      
         TextAlignment Alignment { get; set; }
   
         double FontSize { get; set; }
    }

    public interface IGisComponentParams:INaming
    {
        UInt32 Cno { get; set; }
        string Table { get; set; }
        int GisType { get; set; }
        string CView { get; set; }
        string BTable { get; }
        string SdoTable { get; }
    }
    public  interface IRelation
    {
        
    }
    public  interface IAttribute
    {
        
    }

}
